package top.ochiamalu.aioj.domain.vo.judge;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import top.ochiamalu.aioj.domain.vo.question.ChoiceOptionVO;

import java.util.Date;
import java.util.List;

/**
 * 执行代码
 *
 * @author ochiamalu
 * @date 2025/01/16
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ExecuteCodeVO {
    /**
     * 题目类型
     */
    private Integer questionType;

    /**
     * 问题名称
     */
    private String questionName;

    /**
     * 用户名
     */
    private String username;

    /**
     * 编译器
     */
    private String compiler;

    /**
     * 内存使用
     */
    private String memory;

    /**
     * 用时
     */
    private String time;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 分数
     */
    private String score;

    /**
     * 提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
    private Date submitTime;

    /**
     * 判题时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
    private Date judgeTime;

    /**
     * 代码
     */
    private String code;

    /**
     * 编译器输出
     */
    private String compilerOutput;

    /**
     * 错误信息
     */
    private String errorMessage;

    /**
     * 测试用例
     */
    private List<TestCaseVO> testCaseList;

    /**
     * 解析
     */
    private String analysis;

    /**
     * 选择选项列表
     */
    private List<ChoiceOptionVO> choiceOptionList;

    /**
     * 选择题答案
     */
    private List<Integer> multipleChoice;
    /**
     * 判断题答案
     */
    private Integer judgement;
    /**
     * 填空答案
     */
    private List<String> fillBlanks;
    /**
     * 综合题答案
     */
    private String comprehensive;

    /**
     * 用户输入
     */
    private String userInput;

    /**
     * 建议
     */
    private String suggestion;
}
